package com.han.walkman.service;

import com.han.walkman.entity.DocumentEntity;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;
import java.util.Optional;

/**
 * @Author: Hanjiafeng
 * @Date: 2020/5/7
 * @Desc: 产品操作
 */
public interface DocumentService {
    /**
     * 新增
     *
     * @param documentEntity 产品实体
     */
    void add(DocumentEntity documentEntity);

    /**
     * 删除
     *
     * @param documentEntity 产品实体
     */
    void delete(DocumentEntity documentEntity);

    /**
     * 修改
     *
     * @param documentEntity 产品实体
     */
    void update(DocumentEntity documentEntity);

    /**
     * 查询全部
     *
     * @return list
     */
    List<DocumentEntity> findAll();

    /**
     * 分页查询
     *
     * @param pageable 页
     * @return list
     */
    Page<DocumentEntity> findAll(Pageable pageable);

    /**
     * 查询符合条件的全部
     *
     * @param entityExample 条件
     * @return list
     */
    List<DocumentEntity> findAll(Example<DocumentEntity> entityExample);

    /**
     * 按条件分页查询
     *
     * @param entityExample 条件
     * @param pageable      分页
     * @return list
     */
    Page<DocumentEntity> findAll(Example<DocumentEntity> entityExample, Pageable pageable);

    /**
     * 根据id搜索
     *
     * @param id 产品id
     * @return 产品
     */
    Optional<DocumentEntity> findById(Integer id);
}
